A virtual IP address (VIP) is an IP address assigned to multiple applications residing on a single server or single application residing on multiple servers rather than being assigned to a specific single server. Incoming IP data packets are sent to the VIP address and the data packets are routed to the actual network interfaces. In a system using this shared virtual IP address space, it is usually required to have a router or traffic distributor that distributes traffic across the different servers in the cluster using the same VIP. In FIG. 1 such a system is shown. A host 10 located in an external IP network 15 routes incoming IP data packets to a traffic distributor 20. The external IP network may contain a number of external routers or several subnets. The traffic distributor 20 then distributes the incoming IP data packet to the different hosts 21 to 23. There might be an arbitrary number of hosts as indicated by H21 to H2n. As can be seen from FIG. 1, all of the hosts have the same VIP. One possibility for distributing the IP packets between the hosts or servers is by configuring different port ranges on the shared VIP. As each host 21 to 23 has assigned a different port range, incoming data packets are distributed based on the protocol and port within an IP datagram. The traffic distribution is done in the router or traffic distributor. The router contains forwarding rules, e.g. policy based forwarding (PBF) rules, which are used to distribute the data packets to the different hosts. The forwarding rules may be configured through configuration commands. However, such a configuration implies additional expense for developing and configuring an operation and management (O & M) layer for the router which distributes the traffic. Furthermore, a dependency exists between the operation and management layers in the server cluster and in the router/traffic distributor. By way of example, when VIPs are configured in the server cluster, the different hosts, the forwarding rules or PBF rules should be configured in the router distributing the traffic.
The concept of a virtual server for load-sharing in a server cluster is well-known. However, there is no mechanism for automatic configuration of the forwarding rules in the traffic distributor.
An Address Resolution Protocol (ARP) as, for example, defined in IETF RFC 826 is widely used for resolving the network layer (IP) address into the link layer (MAC) address in IP networks. ARP uses operation code parameters to indicate the ARP message type and is specified by the IANA organization. Numbers 26 to 56.534 are unassigned and can be used for new operations.
Policy-based forwarding (PBF) or policy-based routing (PBR) is a technique used to make routing decisions based on policies set by a network administrator. One possibility for forwarding or routing is a port range number. By way of example, in a virtual server load-sharing is often implemented by assigning a different port range to each real server in the cluster. In addition to the port range, other criteria may be used by a traffic distributor to distribute IP data packets to different hosts. Currently, the rules used by a traffic distributor to distribute IP data packets are manually configured by a network operator. This existing solution based on manual configuration of traffic distributor is prone to human errors. Furthermore, the problem exists with the synchronized adding or removal of a server in a server cluster. It is hard to avoid traffic loss when the forwarding rules are reconfigured manually.
In case of a centralized operation of a management system for a server cluster and a traffic distributor, there exists a possibility to add a network configuration layer, e.g. based on SNMP (Simple Network Management Protocol, see IETF RFC 1157) or a network configuration protocol between the real servers and the traffic distributor in order to configure the forwarding rules. However, such a solution implies implementing a new protocol layer in both the real servers and the traffic distributor. This, however, would mean that additional and expensive software is needed for implementation.